import ACCESS_ENUM from "@/access/accessEnum";

/**
 * 判断当前用户对某个路由是否有权限
 * @param loginUser    当前登录用户
 * @param needAccess    路由所需的权限
 * @return    返回有无
 * needAccess = ACCESS_ENUM.NOT_LOGIN    该参数默认等于，传入新的参数时会替换
 */
const checkAccess = (loginUser: any, needAccess = ACCESS_ENUM.NOT_LOGIN) => {
  //获取当前登录用户具有的权限（如果没有loginUser,则表示未登录）
  const loginUserAccess = loginUser?.userRole ?? ACCESS_ENUM.NOT_LOGIN;
  //全部用户都可访问
  if (needAccess === ACCESS_ENUM.NOT_LOGIN) {
    return true;
  }
  //如果登录用户才能访问
  if (needAccess === ACCESS_ENUM.USER) {
    // 用户没有登陆 代表无权权限
    if (loginUserAccess === ACCESS_ENUM.NOT_LOGIN) {
      return false;
    }
  }
  //如果只有管理员才能访问
  if (needAccess === ACCESS_ENUM.ADMIN) {
    //不为管理员代表无权权限
    if (loginUserAccess !== ACCESS_ENUM.ADMIN) {
      return false;
    }
  }
  return true;
};

export default checkAccess;
